package com.bascker.algorithm.practice.double_point.compare_version;

public class Solution2 {

    // 1 <= ver1.len, ver2.len <= 500
    public int compareVersion(String version1, String version2) {
        if (version1.equals(version2)) {
            return 0;
        }

        // 按"."进行切割成修订号
        String[] ver1 = version1.split("\\.");
        String[] ver2 = version2.split("\\.");

        int n = ver1.length;
        int m = ver2.length;

        // 声明2个指针，分别用于遍历2个修订号数组
        int i = 0;
        int j = 0;

        while (i < n || j < m) {
            // 初始化版本号为 0
            // 好处：若 n != m 时，缺省的修订号就是 0，无需像 solution1 一样自己补齐长度
            int fixNum1 = 0;
            int fixNum2 = 0;

            if (i < n) {
                fixNum1 = Integer.parseInt(ver1[i]);
                i ++;
            }

            if (j < m) {
                fixNum2 = Integer.parseInt(ver2[j]);
                j ++;
            }

            if (fixNum1 > fixNum2) {
                return 1;
            }

            if (fixNum1 < fixNum2) {
                return -1;
            }
        }

        return 0;
    }

}
